1. Technical Field
The present invention relates in general to text selection and manipulation in a data processing system and in particular to selection and manipulation of noncontiguous blocks of text. Still more particularly, the present invention relates to selection and manipulation of multiple noncontiguous blocks of text in a data processing system.
2. Description of the Related Art
In data processing systems, text editors ranging from word processors to source code editors to graphical clients composing email need the ability to cut or copy and paste text within a document, or from one document to another. Most user applications supporting text editing provide such cut-and-paste capability, but with the limitation that the text to be manipulated be found in a contiguous block. Non-contiguous blocks of text must be selected, cut or copied, and pasted with separate operations directed at each block of contiguous text.
As one example, suppose a user wishes to edit the sentence of FIG. 1A ("The red fox ran past the brown cow and jumped over the fence."), selecting certain words or phrases from the sentence and pasting them together to form the sentence of FIG. 2D ("The red cow jumped the fence."). With conventional applications, the user must make multiple selections of text, starting with "The red" as illustrated in FIG. 1B. With a graphical user interface, a user would most likely select the text by using a pointing device such as a mouse to move a graphical pointer to the start of the phrase, actuate the pointing device (by pressing a mouse button, for example), and move the graphical pointer to the end of the phrase, leaving the selected text highlighted. The pointing device is then moved to the desired location where the selected text is to be pasted, where the pointing device may be actuated to activate a cursor at the desired location, and the selected text is pasted by, for example, actuating a control key sequence.
By repeating the process described above, the word "cow" is selected as shown in FIG. 1C and pasted as shown in FIG. 2B, the word "jumped" selected as illustrated in FIG. 1D and pasted as shown in FIG. 2C, and the phrase "the fence." is selected as shown in FIG. 1E and pasted as shown in FIG. 2D. The location from which the selected text is cut or copied may be many pages away from the location where it is to be pasted, requiring the user to scroll or page through the entire intervening text twice for each portion of the selected text. Thus, the process of manipulating noncontiguous blocks of text can be both time consuming and annoying, requiring individual text selection, movement, and paste operations for each contiguous block of text.
A variety of circumstances exists under which a user might desire to manipulate noncontiguous blocks of text in a single operation. For example, summarizing lengthy descriptions may be simplified by selecting key phrases from each portion of the description. Editing a quote to eliminate redundant or irrelevant portions is another example. Yet another example is selecting only portions of material displayed from an on-line resource such as the Internet to be pasted into a separate document and/or saved to a local hard disk drive.
It would be desirable, therefore, to be able to cumulatively select noncontiguous words or phrases in one document for copying or cutting and pasting or otherwise manipulating in a single operation. It would further be desirable to be able to paste the selected noncontiguous words and phrases to other portions of the same document or to another document in a single operation as a concatented block of text. It would also be desirable for such capability to permit a variable number of selections of noncontiguous words or phrases, with each selection having a variable length. Finally, it would be desirable for the capability to manipulate noncontiguous blocks of text in a single operation to permit a variety of operations, such as pasting, deletion, and changing fonts.